home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / scheme / boxer / boxer.lha / boxsys.lisp < prev    next >
Text File  |  1993-07-17  |  6KB  |  174 lines

  1. ;; -*- Mode:LISP; Package:(BOXER GLOBAL 1000); Base:10.; fonts:cptfont, cptfontb -*-
  2.  
  3. #|
  4.  
  5. 1Copyright 1982, 1983, 1984, 1985 Massachusetts Institute of Technology0
  6.  
  7. Permission to use, copy, modify, distribute, and sell this software
  8. and its documentation for any purpose is hereby granted without fee,
  9. provided that the above copyright notice appear in all copies and that
  10. both that copyright notice and this permission notice appear in
  11. supporting documentation, and that the name of M.I.T. not be used in
  12. advertising or publicity pertaining to distribution of the software
  13. without specific, written prior permission.  M.I.T. makes no
  14. representations about the suitability of this software for any
  15. purpose.  It is provided "as is" without express or implied warranty.
  16.  
  17.  
  18.  This file contains the system declaration, and various other random
  19.  1BOXER0 1System0 hacking utilities.
  20.  
  21. |#
  22.  
  23. (EVAL-WHEN (LOAD)
  24.   (LET ((ERROR-OUTPUT 'SI:NULL-STREAM))
  25.     (GLOBALIZE "RECOMPILE-BOXER")
  26.     (GLOBALIZE "LOAD-BOXER")
  27.     (GLOBALIZE "MAKE-BOXER")
  28.     (GLOBALIZE "START-BOXER")
  29.     (GLOBALIZE "BOXER")
  30.     (GLOBALIZE "INIT-FILE-BOXER")
  31.     (GLOBALIZE "INIT-FILE-EVAL")
  32.     (GLOBALIZE "INITIALIZE-BOXER-FROM-LISP"))
  33.   )
  34.  
  35. (DEFSYSTEM BOXER
  36.   (:NAME "Boxer")
  37.   (:PATHNAME-DEFAULT "BOXER:BOXER;")
  38.   (:PATCHABLE ":BOX-PATCH;")
  39.   (:BUG-REPORTS "Boxer" "Report Problems about the Boxer system")
  40.   (:MODULE DEFINITIONS ("BOXDEF"
  41.             "ERROR"
  42.             "DRAW"            
  43.             "DISDEF"
  44.             "EVDEFS"))  
  45.   (:MODULE UTILITIES    "UTIL")
  46.   (:MODULE RELATIONSHIPS "INFSUP")
  47.   (:MODULE EVALDEFS    ("BIND"
  48.             "FNCTNS"))
  49.   (:MODULE STACK        "STACK")
  50. ; (:MODULE STEPPER      "STEP")
  51.   (:MODULE EDITOR     (;"INFSUP"
  52.             "STREAM"
  53.             "EMANIP"
  54.             "BOXWIN"
  55.             "LODISP"
  56.             "REDISP"
  57.             "DISPLY"
  58.             "MOUSE"
  59.             "EDITOR"
  60.             "REGION"
  61.             "COMDEF"))
  62.   (:MODULE PARSE1       "PARSE1")
  63.   (:MODULE PARSE2       "PARSE2")
  64.   (:MODULE KEYDEF      ("KEYDEF"))
  65.   (:MODULE KEYS        ("KEYS1"
  66.             "COMS1"))
  67.   (:MODULE FILEDEFS    ("FILDFS"))
  68.   (:MODULE FILESYS     ("BXFILE"
  69.             "DUMPER"
  70.             "LOADER"))
  71.   (:MODULE GRAFDEFS    ("GRFDFS"
  72.                         "GROBJS"))
  73.   (:MODULE EVALUATOR   ("EVAL"
  74.                         "EVPRIM"))
  75.   (:MODULE GRAPHICS    ("TURTLE"
  76.             "SPRITE"
  77.             "GRDATA"))
  78.   (:MODULE PBOX         "PBOX")
  79.   (:MODULE BOXTEX       "BOXTEX")
  80.   (:MODULE PRIMITIVES  ("PRIMS"
  81.             "NUMBRS"
  82.             "DATA"
  83.             "GRPRIM"
  84.             "NET"))
  85.   (:MODULE REMOTE       "HCLOOP")
  86.   (:MODULE COMETH       "COMETH")
  87.   ;; The real transformations.
  88.   (:COMPILE-LOAD DEFINITIONS)
  89.   (:COMPILE-LOAD UTILITIES  (:FASLOAD DEFINITIONS)
  90.                             (:FASLOAD DEFINITIONS))
  91.   (:COMPILE-LOAD RELATIONSHIPS (:FASLOAD DEFINITIONS)
  92.                        (:FASLOAD DEFINITIONS))
  93.   (:COMPILE-LOAD EVALDEFS   (:FASLOAD DEFINITIONS)
  94.                             (:FASLOAD DEFINITIONS))
  95.   (:COMPILE-LOAD STACK      (:FASLOAD EVALDEFS)
  96.                     (:FASLOAD EVALDEFS))
  97.   (:COMPILE-LOAD EDITOR     (:FASLOAD EVALDEFS RELATIONSHIPS)
  98.                 (:FASLOAD EVALDEFS RELATIONSHIPS))
  99.   (:COMPILE-LOAD GRAFDEFS   (:FASLOAD EDITOR)
  100.                             (:FASLOAD EDITOR))
  101.   (:COMPILE-LOAD EVALUATOR  (:FASLOAD DEFINITIONS EDITOR GRAFDEFS EVALDEFS)
  102.                 (:FASLOAD DEFINITIONS EDITOR GRAFDEFS EVALDEFS))
  103.   (:COMPILE-LOAD PARSE1     (:FASLOAD EVALDEFS)
  104.                 (:FASLOAD EVALDEFS))
  105.   (:COMPILE-LOAD PARSE2     (:FASLOAD EVALDEFS PARSE1)
  106.                 (:FASLOAD EVALDEFS PARSE1))
  107.   (:COMPILE-LOAD PBOX       (:FASLOAD EDITOR EVALDEFS)
  108.                 (:FASLOAD EDITOR EVALDEFS))
  109.   (:COMPILE-LOAD BOXTEX     (:FASLOAD EDITOR EVALDEFS)
  110.                 (:FASLOAD EDITOR EVALDEFS))
  111.   (:COMPILE-LOAD KEYDEF     (:FASLOAD EDITOR EVALDEFS)
  112.                 (:FASLOAD EDITOR EVALDEFS))
  113.   (:COMPILE-LOAD KEYS       (:FASLOAD EDITOR EVALDEFS KEYDEF STACK)
  114.                 (:FASLOAD EDITOR EVALDEFS KEYDEF STACK))
  115.   (:COMPILE-LOAD FILEDEFS   (:FASLOAD EDITOR RELATIONSHIPS)
  116.                             (:FASLOAD EDITOR RELATIONSHIPS))
  117.   (:COMPILE-LOAD FILESYS    (:FASLOAD EDITOR FILEDEFS GRAFDEFS)
  118.                             (:FASLOAD EDITOR FILEDEFS GRAFDEFS)) 
  119.   (:COMPILE-LOAD GRAPHICS   (:FASLOAD EDITOR GRAFDEFS PARSE2)
  120.                             (:FASLOAD EDITOR GRAFDEFS PARSE2))
  121.   (:COMPILE-LOAD PRIMITIVES (:FASLOAD DEFINITIONS EVALDEFS EVALUATOR PARSE2 GRAPHICS PBOX)
  122.                 (:FASLOAD DEFINITIONS EVALDEFS EVALUATOR PARSE2 GRAPHICS PBOX))
  123.   (:COMPILE-LOAD REMOTE     (:FASLOAD EDITOR)
  124.                             (:FASLOAD EDITOR))
  125.   (:COMPILE-LOAD-INIT COMETH
  126.               (DEFINITIONS EDITOR EVALDEFS EVALUATOR PARSE1 PARSE2 KEYS PBOX
  127.                    BOXTEX GRAPHICS PRIMITIVES)
  128.               (:FASLOAD DEFINITIONS EDITOR EVALDEFS EVALUATOR PARSE1 PARSE2 PBOX
  129.                BOXTEX KEYS GRAPHICS PRIMITIVES)
  130.               (:FASLOAD DEFINITIONS EDITOR EVALDEFS EVALUATOR PARSE1 PARSE2 PBOX
  131.                BOXTEX KEYS GRAPHICS PRIMITIVES)))
  132.  
  133.  
  134. ;;;; System maintenance utilities.
  135. (DEFMACRO WITH-MORE-P-NIL (&BODY BODY)
  136.   `(LET ((OLD-MORE-P (FUNCALL TERMINAL-IO ':MORE-P)))
  137.      (UNWIND-PROTECT
  138.        (PROGN (FORMAT TERMINAL-IO "~&Inhibiting more processing...")
  139.           (FUNCALL TERMINAL-IO ':SET-MORE-P NIL)
  140.           ,@BODY)
  141.        (FUNCALL TERMINAL-IO ':SET-MORE-P OLD-MORE-P))))
  142.  
  143. (DEFMACRO WITH-INHIBIT-FDEFINE-WARNINGS-T (&BODY BODY)
  144.   `(LET ((INHIBIT-FDEFINE-WARNINGS T))
  145.      (FORMAT TERMINAL-IO "~%Inhibiting fdefine warnings...")
  146.      ,@BODY))
  147.  
  148. ;; This loads the boxer system based upon the currently loaded system declaration.
  149. (DEFUN LOAD-BOXER ()
  150.   (WITH-MORE-P-NIL
  151.     (WITH-INHIBIT-FDEFINE-WARNINGS-T
  152.       (MAKE-SYSTEM 'BOXER ':NOCONFIRM :nowarn #+SYMBOLICS '(:VERSION :LATEST)))))
  153.  
  154. ;;Once boxer is loaded this makes a new boxer system.
  155. (DEFUN MAKE-BOXER ()
  156.   (TV:MAKE-WINDOW 'BOXER-FRAME))
  157.  
  158. ;; This starts the existing boxer system.
  159. (DECLARE (SPECIAL *BOXER-PANE*))
  160. (DEFUN START-BOXER ()
  161.   (AND (BOUNDP '*BOXER-PANE*) (NOT (NULL *BOXER-PANE*))
  162.        (SEND *BOXER-PANE* ':SELECT)))
  163.  
  164. ;; This is the function most people want to call.
  165. (DEFUN BOXER ()                    
  166.   (LOAD-BOXER)
  167.   (MAKE-BOXER)
  168.   (START-BOXER))
  169.  
  170. ;;; SHorthand for #+(or MIT LMI TI)
  171. (EVAL-WHEN (EVAL COMPILE LOAD)
  172.   #+(or MIT LMI TI)(SSTATUS FEATURE :LMITI)
  173.   )
  174.